═══ 1. Copyright ═══ (c) Copyright Janosch R. Kowalczyk, 1996. myNstall is the universal small PM installation program for OS/2 from Janosch R. Kowalczyk. All rights reserved. This program is Freeware. You can use this program for your own private purposes, but you cannot change any of the contents with following exeptions: 1. Contents of the file INSTALL.DAT. 2. You can use your own help file, but you MUST enclose following chapters from the existing INSTALL.HLP:  Author  Author's thanks  Copyright (this chapter)  Disclaimer  Introduction Please send all bug reports and improvement suggestions to the author. ═══ 2. Introduction ═══ The myNstall ([maj:]Nstall) is the universal smal installation PM-program. It uses control words to arrange the installation process and gives you the interface to your own Rexx routines, so that you can design the installation process with more flexibility as you are now able to. Of course you can omit all these controls and work with the default values as delivered. If you want work without the control words, you can use this routine as is. It copies almost all files (with exception of hidden and system files) from the home directory into the selected destination directory. myNstall revision history ═══ 2.1. myNstall revision history ═══ These are the new features that are added for the version 1.01 Beta of myNstall. Following keywords for the control file INSTALL.DAT was added: 1. WPS_ONLY_IF_EXIST= to hide/show the check box "Create WPS object only". 2. WELCOME_BUTTON=OKCANCEL | OK to show in the Welcome message of your installation the buttons OK and Cancel or OK only. 3. WELCOME_TITLE= to set the Title for this message. 4. WELCOME= to set the message text. You can use multiple this keyword. 5. START_REXX_BY_OPEN_WINDOW= to start your own Rexx routine at the start of installation process (Exit 1). 6. START_REXX_BY_START_INSTALL= to call your own Rexx routine after you pressed the Install-Button but before the installation is starting (Exit 2). 7. START_REXX_BY_SUCCESSFUL= to start your own Rexx routine after the successfully installation (Exit 3). 8. START_REXX_IF_FAILURE= to start your own Rexx routine if the installation is failed (Exit 4). 9. START_REXX_BY_CLOSE_WINDOW= to start your own Rexx routine before you exit the installation process (Exit 5). 10. DELETE_FILE= to delete a file from the destination directory before you start the installation process. You can use multiple this keyword. It is useful for the update installation. 11. REMOVE_DIR= to delete a subdirectory from the destination directory before you start the installation process. You can use multiple this keyword. It is useful for the update installation. These are the new features that are added for the version 1.02 Beta of myNstall. 1. DELETE_FILE_AFTER_INSTALLATION= to delete a file from the destination directory after successfully installation 2. REMOVE_DIR_AFTER_INSTALLATION= to delete a subdirectory from the destination directory after successfully installation. ═══ 3. System requirements ═══ myNstall requires approximately 200 kB (additional INSTALL.DAT) of disk space. To use myNstall to install products, they must be the following on the computer:  OS/2 version 2.x or higher,  Rexx support. ═══ 4. How does the myNstaller work? ═══ To use the myNstall copy following files into your products source (installation) directory:  INSTALL.EXE  INSTALL.HLP  [INSTALL.DAT] INSTALL.DAT is the control file with the keywords to control your installation process. You don't need this file, if you will not use its features. The myNstall unpacks almost all files (with exception of files with attributes H (hidden) and S (system) from the home (source) directory into the current destination directory. See OS/2 UNPACK command for more info. Note: If the current destination directory does not exist, it will be created. You will be prompted for the confirmation. The description of the WPS objects is situated in the file INSTALL.DAT. The description records must be enclosed in parenthesis ( ). If you will be creating a folder for other objects, it must be placed at the beginning of the listing. For the syntax see the parameter list of the REXX function SysCreateObject. Note: You can only use one (1) line for one (1) description record. i.e.: /*------(start WPS objects)-----*/ ("WPFolder", title, location, associations, "r") ("WPProgram", title, location, associations, "r") other descriptions record other descriptions record /*------(end WPS objects)-----*/ See chapter Control words (keywords) in this file for more information. ═══ 5. Control words summary ═══ The following are keywords to control the installation process: 1. DESTINATION=destination_directory_path 2. WPS_ONLY_IF_EXIST=file_name 3. WELCOME=welcome_message 4. WELCOME_TITLE=message_title 5. WELCOME_BUTTON={OK | OKCANCEL} 6. START_REXX_BY_OPEN_WINDOW=rexxcall 7. START_REXX_BY_START_INSTALL=rexxcall 8. START_REXX_BY_SUCCESSFUL=rexxcall 9. START_REXX_BY_FAILURE=rexxcall 10. START_REXX_BY_CLOSE_WINDOW=rexxcall 11. DEST_PATH (used by SysCreateObject and your own Rexx) 12. HOMEDIR (to be used by your own Rexx) 13. DELETE_FILE 14. REMOVE_DIR See chapter Control words (keywords) for more details. ═══ 6. Control words (keywords) ═══ Note: You can write the keywords into the file INSTALL.DAT in any order! In the follwing chapters are described keywords which you can use in the control file INSTALL.DAT. Remember: you can omit all these controls and work with default values only. ═══ 6.1. Destination path ═══ DESTINATION=destination_directory_path This keyword identifies the record from file INSTALL.DAT which sets the name of the standard destination directory. If you omit this name, the root directory of the drive C: will be used. You should omit the leading and ending backslashes and the drive character. Default value: root directory of the drive C: (drive C: is always the default drive. Everybody has the drive C: - isn't?). Example: DESTINATION=TOOLS\INSTALL ═══ 6.2. Create WPS object only ═══ WPS_ONLY_IF_EXIST=file_name The Installer is able to recreate the damaged WPS-Objects for your installation. It does this, if the Check Box Create WPS objects only is selected. But it is not necessary to show this box if the user is doing his first installation. You can hide this Check Box for the installation window, if you use this keyword. This box will be showed, if the file file_name is present in the destination directory. Default value: no - the check box will be showed Example: WPS_ONLY_IF_EXIST=GREED.EXE ═══ 6.3. Welcome keywords ═══ These keywords help you to personify the start of the install procedure. There are 3 WELCOME-keywords: 1. WELCOME=welcome_message This keyword allows you to show the text of welcome_message before your installation starts. You can use multiple WELCOME= keywords for one message. Each WELCOME= message gives you a new line in the message box. Additionally you can use '\n' (like C) in the message line for Line Feed. Note: You must have used at least one WELCOME= message before you can use the WELCOME_TITLE and WELCOME_BUTTON keywords. Default value: No - no message box. Example: WELCOME=Welcome to the Installation of "GREED"\nVersion 2.0 Beta.\n\n WELCOME=Click OK to continue or CANCEL to exit\n\n 2. WELCOME_TITLE=message_title You can use this keyword to change the title in the message box Default value: Welcome Example: WELCOME_TITLE=Hallo folks! 3. WELCOME_BUTTON={OK | OKCANCEL} The message box, in which you show your info, can have either an OK button or both OK and CANCEL buttons. You can decide which form you will use. Default value: OKCANCEL Example: WELCOME_BUTTON=OK Note: Set message text without apostrophes. ═══ 6.4. Keywords for call of Rexx procedures ═══ myNstall supplies the possibility to call your own Rexx procedures at 5 different points of installation processing: 1. START_REXX_BY_OPEN_WINDOW=rexxcall - before the start of the installation (pre-processing exit 1). Default value: No - no Rexx will be called. Example: START_REXX_BY_OPEN_WINDOW=my1rexx 'Janosch' 2. START_REXX_BY_START_INSTALL=rexxcall - after pressing the Push Button "Install" (pre-installing exit 2). Default value: No - no Rexx will be called. Example: START_REXX_BY_START_INSTALL=my2rexx 3. START_REXX_BY_SUCCESSFUL=rexxcall - after successfully installation (post-installing successful exit 3). Default value: No - no Rexx will be called. Example: START_REXX_BY_SUCCESSFUL=my3rexx 'A:' 4. START_REXX_BY_FAILURE=rexxcall - after the unsuccessfully installation (post-installing failure exit 4). Default value: No - no Rexx will be called. Example: START_REXX_BY_FAILURE=my4rexx 5. START_REXX_BY_CLOSE_WINDOW=rexxcall - after the pressing of the Push Button "Exit" (post-processing exit 5). Default value: No - no Rexx will be called. Example: START_REXX_BY_CLOSE_WINDOW=my5rexx dest_path Note: Your REXX programs, if used, must exist in the installation (source) directory. You can only use constant values as calling parameters or the following keywords:  dest_path (for the destination directory)  homeDir (for the installation (source) directory) It is not necessary to enter the File Extention (.CMD). Please do not use the output to / input from the Stdio - it is anyway suppressed! Example: Call for MYREXX.CMD with the parameter 'A:' after successfully installation: START_REXX_BY_SUCCESSFUL=MYREXX 'A:' ═══ 6.5. Keywords for creation of the WPS-objects ═══ Please use these keywords as is! They are used for the parameter list of the function SysCreateObject in the RexxUtil functions packaging. For example see the file INSTALL.DAT. The line must start and end with the parenthesis ( ). The keyword dest_path is the variable name for the destination directory without the ending backslash (i.e.: C:\TOOLS\INSTALL) Note: Use only one (1) line for one (1) object. DEST_PATH is a keyword for the destination directory - please use it as is. For syntax of those lines see RexxUtil function SysCreateObject. ═══ 6.6. Keywords for the Update ═══ The following are the keywords, that you can use for update an existing installation: 1. DELETE_FILE=delete_file_name Here you can enter the names of files to delete if you use this procedure for updating a previous installation. It is useful to delete files you do not need any more for the new release. You can use this keyword as frequently as you need. The delete_file_name will be searched-for in the destination directory. Default value: No - no file will be deleted. Example: DELETE_FILE=MYAPPL16.EXE DELETE_FILE=SUBDIR\MYSEC16.EXE 2. REMOVE_DIR=remove_dir_name Here are the entries for the Directories to be deleted before installing the new instance of previously installed application. These are directories that you no longer require (or want) to appear by the new installation, in an existing directory. You can use this keyword as frequently as you need. You can use this keyword so frequently as you need. Only empty (with no files) directories will be removed, also a tree of empty subdirectories will removed if present. Note: ALL subdirectories must be empty for this function to work. Default value: No - no directory will be removed. Example: REMOVE_DIR=SUBDIR1 REMOVE_DIR=SUBDIR3\SUBSUB2 ═══ 6.7. Post-installation processing ═══ The following are the keywords, that you can use after the successfully installation:  DELETE_FILE_AFTER_INSTALLATION=file_name  REMOVE_DIR_AFTER_INSTALLATION=directory_name After successfully installation you can delete files and directories, which you not need after the installation such as Log files, Rexx-exits or backup directory. You can use this keywords as frequently as you need. Note: Only empty directories will be deleted. Refer to the Keywords for the Update Installation for more informations and the examples. ═══ 7. Authors thanks ═══ Thanks to David L. White for the help by testing of this product and translation of all text. Thanks to Uwe Aust for the help by testing of this product, new ideas and improvement suggestions. Thanks to Peter MacCarthy-Morrogh for the help by testing of this product. ═══ 8. Author ═══ Janosch R. Kowalczyk Oberwaldstr. 42 63538 Groсkrotzenburg Germany Tel: +49-6186/201676 Fax: +49-6186/470 Compuserve: 101572,2160 ═══ 9. Disclaimer ═══ This package is provided as is, without any guarantees or warrantees whatsoever. The author is not liable or responsible for any loss or damage of any kind whatsoever, including, but not limited to, losses of a financial, physical, emotional, marital, social or mental nature that may result from the use or the purported use of anything in this package, for any purpose whatsoever. Thanks to Michael Schillingford for this wording.